//
//  luoerStatusCell.swift
//  WeiBoStudy
//
//  Created by luoerliu on 16/5/20.
//  Copyright © 2016年 刘文平. All rights reserved.
//

import UIKit

class luoerStatusCell: UITableViewCell {
//    cell拿到控制器的数据源方法给其设置的模型传给originalView
    var status: luoerStatus?
        {
        didSet
        {
//          cell给原创view设置模型
          originalView.status = status
         }
    }
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
//    注册cell后创建cell时会调用这个方法
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style:style,reuseIdentifier:reuseIdentifier)
        self.prepareUI()
        self.backgroundColor = UIColor(white: 237 / 255.0, alpha: 1)
    }
    private func prepareUI()
    {
//        添加控件
        contentView.addSubview(originalView)
        contentView.addSubview(buttonView)
        // 2.添加约束
//        原创view
        originalView.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(contentView).offset(10)
            make.leading.equalTo(contentView)
            make.trailing.equalTo(contentView)
//            // 高度需要根据内容来确定,先测试就写死一个高度
//            let height = Int(arc4random_uniform(100)) + 50
//            make.height.equalTo(height)
//            buttonView
            buttonView.snp_makeConstraints { (make) -> Void in
                make.leading.equalTo(contentView)
                make.top.equalTo(originalView.snp_bottom)
                make.trailing.equalTo(contentView)
                make.height.equalTo(37)}
        }
        
        // 根据cell的约束自动计算行高,系统是去获取contentView的高度作为cell的高度
        contentView.snp_makeConstraints { (make) -> Void in
            // contentView
            make.leading.equalTo(self)
            make.top.equalTo(self)
            make.trailing.equalTo(self)
            
            // contentView的高度不要去参照cell,cell的高度本来就是来参照contentView的高度
            // contentView的底部约束需要参照子控件
            make.bottom.equalTo(buttonView.snp_bottom)
        }

    }
//    懒加载出控件
//    原创view
    private lazy var originalView:luoerStatusOriginalView = luoerStatusOriginalView()
//    底部的button
    private lazy var buttonView:luoerStatusButtonView = luoerStatusButtonView()
}
